package com.qzsoft.zhjd.machine.modules.machineinfo.dto;

import java.math.BigDecimal;
import java.util.Date;

import org.springframework.format.annotation.DateTimeFormat;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.qzsoft.jeemis.common.annotation.Dict;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;

/**
 * @ClassName MachineInfoBookListDto
 * @Description 机械设备台账信息
 * @author linhuawei
 * @since 2021-11-30
 */
@Data
@EqualsAndHashCode(callSuper = false)
@NoArgsConstructor
@AllArgsConstructor
@Builder
@ToString
public class MachineInfoBookListDto {

    /**
     * 设备主键
     */
    private String id;

    /**
     * 单位编码
     */
    private String deptId;

    /**
     * 单位主键
     */
    private String deptPkid;

    /**
     * 单位名称
     */
    @TableField(exist = false)
    @Dict(dicCodeField = "deptId", dictCodeId = "UN")
    private String deptName;

    /**
     * 设备名称
     */
    private String name;

    /**
     * 机械入网状态
     */
    private String onlineState;

    /**
     * 机械状态
     */
    private String state;
    
    /**
     * 资产编号
     */
    @TableField(updateStrategy = FieldStrategy.NEVER)
    private String assetNumber;

    /**
     * 设备编码
     */
    private String machineKey;

    /**
     * 设备类型
     */
    private String type;

    /**
     * 设备类型
     */
    @Dict(dicCodeField = "type", dictCodeId = "MACHINE_TYPE")
    @TableField(exist = false)
    private String typeName;

    /**
     * 设备一级分类
     */
    private String category1;

    /**
     * 设备一级分类名称
     */
    @Dict(dicCodeField = "category1", dictCodeId = "MACHINE_CATEGORY")
    @TableField(exist = false)
    private String category1Name;

    /**
     * 设备二级分类
     */
    private String category2;

    /**
     * 设备二级分类名称
     */
    @Dict(dicCodeField = "category2", dictCodeId = "MACHINE_CATEGORY")
    @TableField(exist = false)
    private String category2Name;

    /**
     * 设备品牌
     */
    private String brand;

    /**
     * 设备品牌名称
     */
    @Dict(dicCodeField = "brand", dictCodeId = "MACHINE_BRAND_MODEL")
    @TableField(exist = false)
    private String brandName;

    /**
     * 设备型号
     */
    private String model;

    /**
     * 设备型号名称
     */
    @Dict(dicCodeField = "model", dictCodeId = "MACHINE_BRAND_MODEL")
    @TableField(exist = false)
    private String modelName;

    /**
     * 发动机功率
     */
    private BigDecimal enginePower;

    /**
     * 生产厂家
     */
    private String manufacturer;

    /**
     * 资产原值
     */
    private BigDecimal originalValue;

    /**
     * 开始使用日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date startUseDate;

    /**
     * 使用责任人
     */
    private String contactPerson;

    /**
     * 联系电话
     */
    private String contactPhone;

    /**
     * 设备图片
     */
    private String coverImg;

}
